package main

import (
	"fmt"
	"function"

	// "go-learning/function"

	"go-learning/package-test/action"
	"go-learning/package-test/model"

	"github.com/shopspring/decimal"
)

func main() {
	/*
		包就是在实际项目中建立的不同的文件夹
		在实际项目中呢，文件夹名和包名一般是一致的
		不一致的话也是允许的
		同一个包下，所有文件的包名一致

		优点：
		A、B、C包可以有相同名字的函数：比如 a()
		调用时只需要写 包名+函数名即可
	*/

	// 定义包名：在代码页的最上面，比如 package main
	// 引入包名，写 import + 包名
	fmt.Println()
	// import "fmt" 这里的 fmt 存放在 GOROOT 的位置
	action.ProductList()

	demonlb := model.UserInfo{
		Name:   "demonlb",
		Age:    20,
		Height: 185,
		School: "WIT",
		Hobby:  []string{"coding", "sports", "game"},
		MoreInfo: map[string]interface{}{
			"work": "QingCloud",
			"duty": "fe",
		},
	}

	fmt.Println(demonlb.MoreInfo["work"]) // QingCloud

	// 导入 外部包，一个或多个外部的包，go get，支持 github bitbucket，Google code
	// MiniPay.MiniPayAsyncResult{}
	quantity := decimal.NewFromInt(3)
	fmt.Println(quantity)

	// 新建一个包，在这个包中定义一个功能，只是简单的打印
	function.Println("123")
}
